home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 1995 May / PC Answers CD-ROM 7 (Future Publishing) (May 1995).iso / vbits / demos / qbs / apex / truegrid / setup / tgdemo.ms_ / tgdemo.ms
Encoding:
Text File  |  1995-01-04  |  5.4 KB  |  213 lines

  1. '**************************************************************************
  2. '*                       Apex Software TrueDeno Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL OPTCUR$      ''Option selection from option dialog.
  26.  
  27. DECLARE SUB Install
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29.  
  30. DECLARE FUNCTION GetModuleHandle Lib "Kernel" (ModuleName$) As Integer
  31. DECLARE FUNCTION Ctl3dAutoSubclass Lib "Ctl3DV2.DLL" (hInst%) As Integer
  32. DECLARE FUNCTION Ctl3dRegister Lib "Ctl3DV2.DLL" (hInst%) As Integer
  33. DECLARE FUNCTION Ctl3dUnregister Lib "Ctl3DV2.DLL" (hInst%) As Integer
  34.  
  35.  
  36. INIT:
  37.  
  38.     INST% = GetModuleHandle("setup.exe")
  39.     Ret = Ctl3dRegister(INST%)
  40.     Ret = Ctl3dAutoSubclass(INST%)
  41.  
  42.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  43.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  44.  
  45.     SetBitmap CUIDLL$, LOGO
  46.     SetTitle "Apex TrueDemo Setup"
  47.  
  48.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  49.     IF szInf$ = "" THEN
  50.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  51.     END IF
  52.     ReadInfFile szInf$
  53.  
  54.     OPTCUR$ = "1"
  55.     DEST$ = "C:\TGDEMO"
  56.  
  57.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  58.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  59.     IF IsDriveValid(WinDrive$) = 0 THEN
  60.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  61.         GOTO QUIT
  62.     END IF
  63.  
  64.  
  65. WELCOME:
  66.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  67.     IF sz$ = "CONTINUE" THEN
  68.         UIPop 1
  69.     ELSE
  70.         GOSUB ASKQUIT
  71.         GOTO WELCOME
  72.     END IF
  73.  
  74.  
  75. GETPATH:
  76.     SetSymbolValue "EditTextIn", DEST$
  77.     SetSymbolValue "EditFocus", "END"
  78. GETPATHL1:
  79.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  80.     DEST$ = GetSymbolValue("EditTextOut")
  81.  
  82.     IF sz$ = "CONTINUE" THEN
  83.         IF IsDirWritable(DEST$) = 0 THEN
  84.             GOSUB BADPATH
  85.             GOTO GETPATHL1
  86.         END IF
  87.         UIPop 1
  88.     ELSEIF sz$ = "REACTIVATE" THEN
  89.         GOTO GETPATHL1
  90.     ELSEIF sz$ = "BACK" THEN
  91.         UIPop 1
  92.         GOTO WELCOME
  93.     ELSE
  94.         GOSUB ASKQUIT
  95.         GOTO GETPATH
  96.     END IF
  97.  
  98.  
  99.     Install
  100.  
  101.  
  102. QUIT:
  103.     ON ERROR GOTO ERRQUIT
  104.  
  105.     IF ERR = 0 THEN
  106.         dlg% = EXITSUCCESS
  107.     ELSEIF ERR = STFQUIT THEN
  108.         dlg% = EXITQUIT
  109.     ELSE
  110.         dlg% = EXITFAILURE
  111.     END IF
  112. QUITL1:
  113.  
  114.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  115.     IF sz$ = "REACTIVATE" THEN
  116.         GOTO QUITL1
  117.     END IF
  118.     UIPop 1
  119.  
  120.     Ret = Ctl3dUnregister(INST%)
  121.  
  122.     END
  123.  
  124. ERRQUIT:
  125.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  126.     END
  127.  
  128.  
  129.  
  130. BADPATH:
  131.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  132.     IF sz$ = "REACTIVATE" THEN
  133.         GOTO BADPATH
  134.     END IF
  135.     UIPop 1
  136.     RETURN
  137.  
  138.  
  139.  
  140. ASKQUIT:
  141.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  142.  
  143.     IF sz$ = "EXIT" THEN
  144.         UIPopAll
  145.         ERROR STFQUIT
  146.     ELSEIF sz$ = "REACTIVATE" THEN
  147.         GOTO ASKQUIT
  148.     ELSE
  149.         UIPop 1
  150.     END IF
  151.     RETURN
  152.  
  153.  
  154.  
  155. '**
  156. '** Purpose:
  157. '**     Builds the copy list and performs all installation operations.
  158. '** Arguments:
  159. '**     none.
  160. '** Returns:
  161. '**     none.
  162. '*************************************************************************
  163. SUB Install STATIC
  164.  
  165.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  166.     CreateDir DEST$, cmoNone
  167.  
  168.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  169.     WriteToLogFile ""
  170.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  171.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  172.     WriteToLogFile ""
  173.     WriteToLogFile "May have had to create the directory: " + DEST$
  174.     WriteToLogFile ""
  175.  
  176.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  177.     CopyFilesInCopyList
  178.  
  179.     CreateProgmanGroup "Apex TrueDemo", "", cmoNone
  180.     ShowProgmanGroup  "Apex TrueDemo", 1, cmoNone
  181.     CreateProgmanItem "Apex TrueDemo", "TrueDemo Navigator", MakePath(DEST$,"tgdemo.exe"), "", cmoOverwrite
  182.     CreateProgmanItem "Apex TrueDemo", "TrueGrid Information", "notepad.exe "+MakePath(DEST$,"tginfo.txt"), "", cmoOverwrite
  183.  
  184.  
  185.     CloseLogFile
  186.  
  187. END SUB
  188.  
  189.  
  190.  
  191. '**
  192. '** Purpose:
  193. '**     Appends a file name to the end of a directory path,
  194. '**     inserting a backslash character as needed.
  195. '** Arguments:
  196. '**     szDir$  - full directory path (with optional ending "\")
  197. '**     szFile$ - filename to append to directory
  198. '** Returns:
  199. '**     Resulting fully qualified path name.
  200. '*************************************************************************
  201. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  202.     IF szDir$ = "" THEN
  203.         MakePath = szFile$
  204.     ELSEIF szFile$ = "" THEN
  205.         MakePath = szDir$
  206.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  207.         MakePath = szDir$ + szFile$
  208.     ELSE
  209.         MakePath = szDir$ + "\" + szFile$
  210.     END IF
  211. END FUNCTION
  212.  
  213.